1. Field of the Invention
The invention relates generally to Serial Attached SCSI (SAS) and Serial Advanced Technology Attachment (SATA), and more specifically relates to determining a degree to which a given device complies with SAS and/or SATA protocols.
2. Discussion of Related Art
In electronic systems implementing a SAS and/or SATA (SAS/SATA) topology, it is not uncommon for certain devices of the system to improperly implement portions of the SAS/SATA protocols. This may be the result of sloppy design, simple oversight, or a designer's attempt to streamline the way the device communicates by bypassing certain steps normally specified by SAS/SATA protocols. At start-of-day, these devices are typically detected by the system as SAS/SATA devices because they adequately follow SAS/SATA procedures for discovery and initialization. However, once the devices are operating within the SAS/SATA topology, they may provide unexpected responses to certain types of SAS/SATA communications.
The unexpected responses of the SAS/SATA devices result in several problems for the system implementing the SAS/SATA topology. The first problem is that a communication failure may occur owing to a device's noncompliance (i.e., data may be dropped or misreported during communications). This may harm the overall integrity of the electronic system. Another problem is that even benign errors (for example, skipping an “unnecessary” SAS/SATA protocol step) may cause the SAS/SATA topology to engage in processing-intensive error correction routines each time a protocol violation is detected. This may be true even when the device predictably throws the same protocol violation over and over again. Thus, even if data is not lost, the performance of the system is degraded owing to the device's noncompliance.
Thus it is an ongoing challenge to account for devices that are not fully protocol compliant within a SAS/SATA topology.